#include<iostream>
#include<vector>
using namespace std;
vector<int> arr;
//把最终结果视为arr的前缀和
//对结果数组区间加减,它的差分arr: arr[l]+=c arr[r+1]-=c
//最开始都视为零,初始化的每一个值 就相当于对arr insert(i,i,c)
//最后求一变前缀和即可!

//将对原数组区间操作转换为对差分数组的操作
void insert(int l,int r,int c){
    arr[l]+=c;
    arr[r+1]-=c;
}
int main(){
    int n,m;
    cin>>n>>m;
    arr.resize(n+1);
    //初始值
    for(int i=0;i<n;i++){
        int tmp;
        cin>>tmp;
        insert(i,i,tmp);
    }
    //后续操作
    for(int i=0;i<m;i++){
        int l,r,c;
        cin>>l>>r>>c;
        insert(l-1,r-1,c);
    }
    //最后通过求差分数组的前缀和得到原数组
    cout<<arr[0];
    for(int i=1;i<n;i++){
        arr[i]+=arr[i-1];
        cout<<' '<<arr[i];
    }
    return 0;
}